Image capture apparatus and method

ABSTRACT

There is provided an image capture apparatus and method. An image capture device can be used in the decoding of a decodable indicia, e.g., bar code symbols and/or text characters and can further be used in the capture of one or more images that may or may not be subjected to decoding processes. In one embodiment, an image captured with use of an image capture device is an image of an item bearing a decodable indicia. In one embodiment, an image capture device can have a plurality of user selectable modes of operation.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.11/442,662, filed May 25, 2006, which is a divisional of U.S. patentapplication Ser. No. 09/858,163, filed on May 15, 2001 (now U.S. Pat.No. 7,111,787). This application is also related to U.S. patentapplication Ser. No. 10/143,158 (now U.S. Pat. No. 6,942,151). Each ofthe above applications is incorporated herein by reference in itsentirety.

FIELD OF THE INVENTION

The invention relates to an image capture apparatus and method.

BACKGROUND OF THE INVENTION

Currently available image sensor based optical readers include circuitrywhich (1) captures a frame image data into a decoding buffer memorylocation, (2) attempts to decode a bar code symbol or OCR decodable textmessage represented in the frame image data, and which (3) outputs adecoded-out message corresponding to a decodable indicia represented inthe frame of image data.

In these readers there is no further attempt to decode a message encodedin symbol or text characters represented in the frame of image data.When decoding fails using such a device, the reader captures anotherframe of image data, attempts to decode it, and continues capturingframes of image data and attempting to decode image data until a triggerof the reader is released or until a symbol is successfully decoded. Ifthe symbol or text string is otherwise decodable but the reader is notconfigured to read the symbol or OCR text string in the field of view ofthe reader, another optical reader must be utilized to decode thedecodable symbol or text string. Decodable symbols and decodable textcharacters are referred to generically herein as “decodable indicia.”

Another problem noted with use of optical readers is fraud. Bar codesymbols are now used for identifying a wide range of products and otheritems including retail items, shipping containers, U.S. patents andpersonal identification cards. The increased use of bar code symbols anddecodable text characters has made decodable symbol and text charactersthe target of fraud perpetrators. A common fraud scheme perpetrated inconnection with decodable indicia is transposition. In a transpositionfraud scheme a decodable indicia is taken from one item (such as aretail product of lower value) and transposed on another item (such asan item of higher value). Unfortunately, presently available opticalreaders are not equipped to detect when such transposition fraud schemeshave taken place. Especially in environments where the decoding ofsymbols and text characters is highly automated, transposition and otherfraud schemes related to bar code use go undetected.

There is a need for an optical reader which is better equipped to readobscure or otherwise hard to read symbols or text characters and whichis better equipped for detecting fraud.

DETAILED DESCRIPTION OF THE DRAWINGS

The preferred embodiment of the invention will now be described, by wayof example only, with reference to the accompanying figures wherein likemembers bear like reference numerals and wherein:

FIGS. 1 a-1 b show a reader according to the invention;

FIGS. 2 a-2 d show alternative embodiments of optical reading imagingdevices in which the invention may be incorporated;

FIGS. 3 a-3 e show alternative electronic hardware for optical readersand reader communication systems for the invention;

FIG. 4 a shows architecture for a program memory of an optical readeraccording to the invention.

FIGS. 5-8 are flow charts illustrating various decoding functions of areader according to the invention;

FIG. 9 a shows a printed image representation corresponding to a frameof image data having a window comprising an image representation of adecoded message;

FIG. 9 b is a diagram illustrating a typical architecture of an imagefile;

FIG. 10 is a diagram of illustrating aspects of an image index functionof the invention.

DETAILED DESCRIPTION OF THE INVENTION

There is provided an optical reading imaging device which is highlyuseful for reading obscure or hard to read symbols or OCR decodable textcharacters, which is highly useful for detecting fraud, and which isalso highly useful for creating an easily searchable database of indexedimage files.

Preferably, a reader according to the invention is in communication withor operating under the control of a powerful processor system or anetwork of powerful processor systems.

A reader according to the invention in one embodiment is operable infour user-selected modes of operation. The modes may be selected from adecoding option menu driver which is called-up by selecting a decodingfunction of the optical reading device, from a set of possible devicefunctions. The decode function may be selected from a function menudriver which is made available to a user when a reader according to theinvention is first powered up.

The user selectable modes of operation are: (1) “message only;” (2)“image only,” (3) “message and image,” and (4) “two-step message andimage.”

In the first user selectable mode of operation, the “message only” mode,a reader according to the invention operates in accordance with theoperation of a reader of the prior art discussed in the backgroundherein. That is, when the first user-selected decoding mode of operationis selected, the reader captures a frame of image data into a decodingbuffer memory location, attempts to decode any decodable indicia in thecaptured frame, and stores the decoded message in a memory locationdedicated for storing the message information without storing into adesignated frame storage memory location the frame of image data fromwhich the decoded message was decoded.

When operating in the second user-selected decoding mode of operation,the “image only” mode, a reader according to the invention stores aframe of image data in a designated frame storage memory location whereit is made available for transmitting to another memory location. It maybe desirable to transfer the frame of image data to another memorylocation, for example, so that the image data can be subjected to barcode or OCR decoding operation a processor system other than the oneresponsible for the original image capture. The second mode of operationis highly useful in decoding environments where it is known that thedecodable indicia is decodable but is of a type that cannot be decodedby the reader capturing the frame including the indicia as presentlyconfigured. For example, the reader reading the indicia may be capableof symbol decoding only whereas the decodable indicia of a capture imagemay comprise OCR characters. The second mode also conveniently allows auser to capture an image for any purpose which may be unrelated todecoding during the course of operating reader 10 in accordance with adecoding function of reader 10.

When operating in the third user-selected mode of operation, the“message and image” mode, a reader according to the invention stores toa designated frame storage memory location a frame of image data andstores to the same and/or another memory location a decoded messagecorresponding to the decodable indicia represented in the image.

In a fourth mode, the “two-step message and image mode”, a readeraccording to the invention may store into a designated frame storagememory location both a frame of image data and a decoded messageassociated with the frame of image data as in the third mode. However,in the fourth mode, the decoded message is not decoded from a decodableindicia represented in the stored frame of image data. A user capturestwo separate images during the course of operating the reader in thefourth mode. One of the captured images is stored in a dedicated memoryspace and the other of the captured images is subjected to decoding fordeveloping a decoded-out message which is associated with the memorystored captured image.

In both the third and fourth modes, message data is associated withimage data. The message data can be associated with image data in anumber of different ways. For example, the reader may convert thedecoded-out message into an image representation of the characters ofthe message data, and stitch the image representation of the messageinto a section of the frame of stored image data. The message data mayalso be stored in a memory location separate from the frame storagememory location, where it is retained as message data and not convertedto image data. The message data may also be stored in a header bytelocation of a header associated with the image file encoding the storedframe of image data.

The third and fourth modes are highly useful for fraud detection. Thatis, by selecting the third or fourth modes a user has the capacity toview an image side-by-side to a decoded-out message-image. If the imagecomprises a representation of a package or item on which the bar code islocated, a user can determine if the bar code or package have beentampered with by viewing the image in connection with the decodedmessage.

The third and fourth modes are also highly useful for providingsecondary decoding functions. The message associated with an image inthe third or fourth modes is decoded from a decodable indicia in orassociated with the scene corresponding to the stored frame of imagedata. However, the scene represented by the stored frame of image datamay include additional decodable indicia which was not subjected todecoding or of a type that could not be decoded by the as-configuredreader at the time the reader captured the frame of image data stored indesignated image frame storage location. The third and fourth modesallow this secondary decodable indicia to be decoded at a later time,after decoding of the indicia yielding the decoded-out message stored ina designated memory location during the third or fourth modes.

Still further, the third and fourth modes are highly useful for imageindexing applications. Incorporating message data in a specific headerlocation of several memory stored image data frame image files creates adatabase of image files, wherein each image file is indexed by themessage associated with the image, as determined by the decodableindicia yielding the decoded-out message. When such a database iscreated, any one image file in the database can be accessed by searchingfor a particular decoded-out message in the particular header bytelocation of the various image data frame image files.

The invention is first described briefly with reference to FIGS. 1 a and1 b showing top and bottom perspective views of an optical reader 10,10-1 having an imaging assembly 33, incorporated therein. A readeraccording to the invention is operable in one embodiment in four modesof operation: (1) a “message only” mode, (2) an “image only” mode (3) a“message and image mode”, and (4) a “two-step message and image mode.”In one embodiment, a menu driver prompting a user to select one of thefour modes is accessed by selecting a decoding option of the imagingdevice in which the invention is incorporated, out of a set of possibledevice functions.

In the “message only” mode, reader 10 stores to a designated memorylocation a decoded-out data message. In an “image only” mode, a readeraccording to the invention, stores to a designated frame storage memorylocation a frame of image data without attempting to decode decodedindicia represented in the image. In a “message and image” mode, areader according to the invention stores to a designated memory locationa frame of image data and, in addition, a decoded-out message associatedwith the frame of image data to the frame storage memory location and orto another designated memory location. In the two-step message and imagemode, a reader according to the invention stores into a designatedmemory location or locations both a frame of image data and adecoded-out message associated with the frame of image data as in thethird mode. However, in the fourth mode, the decoded message is notdecoded from a decodable indicia represented in the stored frame ofimage data. A user captures two separate images during the course ofoperating the reader in the fourth mode. One of the captured images isstored in a dedicated memory space and the other of the captured imagesis subjected to decoding for developing a decoded message which is thenassociated with the memory stored captured image.

Shown in the embodiment of FIGS. 1 a and 1 b as being provided by akeyboard equipped data collection device having a finger saddle 12,reader 10 may take on a variety of forms. For example, the invention canbe incorporated in a traditionally styled optical reader 10, 10-2 havinga handle 13, as indicated in the embodiment of FIG. 2 a, or a palm-heldpersonal computer, or personal data assistant (PDA) 10, 10-3 indicatedin the example of FIG. 2 b. The invention can also be incorporated in awireless portable telephone 10, 10-4 as indicated by the example of FIG.2 c or in a digital camera 10, 10-5 as indicated by FIG. 2 d. All of theabove readers 10-1, 10-2, 10-3, 10-4, and 10-5 have incorporated thereinan imaging apparatus 33 which includes at least imaging optics, and animage sensing device. The above readers also include an illuminationassembly 21 for illuminating a target area, T. In the embodiments ofFIGS. 1 a-2 c illumination assembly 21 typically comprises LEDs.Illumination system assembly 21 of the digital camera 10-4 of FIG. 2 dtypically comprises a flash illuminator. All of the above readers 10-1,10-2, 10-3, 10-4 and 10-5 also comprise a hand-held portable housing 11.

As is indicated in the specific embodiment of FIG. 1 a, optical reader10 includes a keyboard 13 k and a display 14 d. Reader 10, 10-1, mayprompt a user to select one of the three modes by displaying a menu asshown by screen display 14 s, having text section 14 tx corresponding toeach of the modes.

Reader 10-1 may be equipped with a graphical user interface for aidingin the menu selection of one of the four operational modes. While themenu driver in the embodiment of FIG. 1 a is shown as being adisplay-aided menu driver in which indicators 14TX corresponding to eachof the menu choices is displayed, it will be understood that the menudriver of the invention can take on a variety of forms. For example,turning to the example of FIG. 2 d, the menu driver of digital camerareader 10-5 is conveniently embodied by a toggling menu driver menusystem wherein depressing of an available control buttons of reader 10-5toggles through several menu options, causing a different indicia toappear in a viewfinder display inside camera 10-5 each time the controlbutton is toggled. The menu driver system soliciting selection of one ofthe modes described herein may also comprise a series of keys on akeyboard, wherein each of the various keys is configured so thatselection of one of the keys results in one particular mode beingselected. In the embodiment of FIG. 1 a for example, reader 10-1 mayhave four function keys, 13F1, 13F2, 13F3, 13F4, each one correspondingto one of the available operating modes. In an embodiment wherein areader according to the invention comprises neither control buttons nora display, a menu driver of the invention is conveniently provided by aseries of menu symbols to be described later herein. Preferably, anoperation menu driver which displays indicia corresponding to theoperational modes is made available to a user of reader 10 after theuser selects, using a reader function menu driver, a “decoding” functionfrom a set of alternative functions, such as a “camera” function, or a“file transfer” function, and a “reprogramming” function.

The availability of multiple operational modes of the reader describedherein allows the operation of the reader to be optimized depending onthe particular decoding environment. In case the snappiest of operationsis desired, and the expected indicia to be decoded is common and readilydecoded, and there is little likelihood of fraudulent bar code use, thenthe first mode is commonly selected. In the case that a captured symbolrepresentation includes a decodable indicia but the reader as presentlyconfigured is not configured to read the symbol, it is desirable toselect the second mode. The third and fourth modes are highly usefulwherein a scene includes at least one decodable indicia that can beconfigured by the image capturing reader as presently configured, butalso comprises other decodable indicia which cannot be decoded by thereader 10 as presently configured.

The third and forth modes are also highly useful in the case there is asubstantial likelihood of indicia transposition fraud. Still further,the third and fourth modes are also highly useful in the case it isdesired to file several images in an easily searchable indexed databaseof stored image files.

Block diagrams illustrating various types of electronic hardwareconfigurations for optical readers in which the invention may beincorporated and communication systems comprising at least one opticalreader are shown in FIGS. 3 a-3 e. Referring to FIG. 3 a, optical reader10 a includes a reader processor assembly 30.

Reader processor assembly 30, includes an illumination assembly 21 forilluminating a target object T, such as a substrate bearing 1D or 2D barcode symbol or a text string, and an imaging assembly 33 for receivingan image of object T and generating an electrical output signalindicative of the data optically encoded therein. Illumination assembly21 may, for example, include an illumination source assembly 22,together with an illuminating optics assembly 24, such as one or morelenses, diffusers, wedges, reflectors or a combination of such elements,for directing light from light source 22 in the direction of a targetobject T. Illumination assembly 21 may comprise, for example, laser orlight emitting diodes (LEDs) such as white LEDs or red LEDs.Illumination assembly 21 may include target illumination and optics forprojecting an aiming pattern on target T. Illumination assembly 21 maybe eliminated if ambient light levels are certain to be high enough toallow high quality images of object T to be taken. Illumination assembly21 may also be located remote from reader housing 11, at a location soas to eliminate or reduce specular reflections. Imaging assembly 33 mayinclude an image sensor 32, such as a color or monochrome 1D or 2D CCD,CMOS, NMOS, PMOS, CID or CMD solid state image sensor, together with animaging optics assembly 34 for receiving and focusing an image of objectT onto image sensor 32. The array-based imaging assembly shown in FIG. 3a may be replaced by a laser array based imaging assembly comprising oneor more laser sources, a scanning mechanism, emit and receive optics, atleast one photodetector and accompanying signal processing circuitry.

Reader processor assembly 30 of the embodiment of FIG. 3 a also includesprogrammable control circuit 40 which preferably comprises an integratedcircuit microprocessor 42 and an application specific integrated circuit(ASIC 44). The function of ASIC 44 could also be provided by fieldprogrammable gate array (FPGA). Processor 42 and ASIC 44 are bothprogrammable control devices which are able to receive, output andprocess data in accordance with a stored program stored in memory unit45 which may comprise such memory elements as a read/write random accessmemory or RAM 46, 46-1 and an erasable read only memory or EROM 47,47-1. RAM 46, 46-1 typically includes at least one volatile memorydevice but may include one or more long term non-volatile memorydevices. Processor 42 and ASIC 44 are also both connected to a commonbus 48-1 through which program data and working data, including addressdata, may be received and transmitted in either direction to anycircuitry that is also connected thereto. Processor 42 and ASIC 44differ from one another, however, in how they are made and how they areused.

More particularly, processor 42 is preferably a general purpose,off-the-shelf VLSI integrated circuit microprocessor which has overallcontrol of the circuitry of FIG. 2 a, but which devotes most of its timeto decoding decodable image data such as symbology or text characterdata stored in RAM 46, 46-1 in accordance with program data stored inEROM 47, 47-1. ASIC 44, on the other hand, is preferably a specialpurpose VLSI integrated circuit, such as a programmable logic or gatearray, which is programmed to devote its time to functions other thandecoding image data, and thereby relieve processor 42 from the burden ofperforming these functions.

The actual division of labor between processor 42 and ASIC 44 willnaturally depend on the type of off-the-shelf microprocessors that areavailable, the type of image sensor which is used, the rate at whichimage data is output by imaging assembly 33, etc. There is nothing inprinciple, however, that requires that any particular division of laborbe made between processors 42 and 44, or even that such a division bemade at all.

With processor architectures of the type shown in FIG. 3 a, a typicaldivision of labor between processor 42 and ASIC 44 will be as follows.Processor 42 is preferably devoted primarily to such tasks as decodingimage data in response to trigger 13 t being activated, once such datahas been stored in RAM 46, 46-1 and, recognizing characters representedin stored image data according to an optical character recognition (OCR)scheme in response to an actuation of trigger 13 t.

ASIC 44 is preferably devoted primarily to controlling the imageacquisition process, the A/D conversion process and the storage of imagedata, including the ability to access memories 46-1 and 47-1 via a DMAchannel. ASIC 44 may also perform many timing and communicationoperations. ASIC 44 may, for example, control the illumination of LEDs22, the timing of image sensor 32 and an analog-to-digital (A/D)converter 36-1, the transmission and reception of data to and from aprocessor system external to assembly 30, through an RS-232, a networksuch as an Ethernet, a serial bus such as USB, a wireless communicationlink (or other) compatible I/O interface as is indicated by interface37-2. ASIC 44 may also control the outputting of user perceptible datavia an output device, such as aural output device 14 a, a good read LED14 g and/or a display monitor which may be provided by a liquid crystaldisplay such as display 14 d. Control of output, display and I/Ofunctions may also be shared between processors 42 and 44, as suggestedby bus driver I/O interface 37-3 or duplicated, as suggested bymicroprocessor serial I/O interface 37-1 and interface 37-2. Asexplained earlier, the specifics of this division of labor is of nosignificance to the present invention.

FIG. 3 b shows a block diagram exemplary of an optical reader which isadapted to easily receive user-input control instructions resulting in achange in an operating program of a reader. In addition to having theelements of single state reader circuit of FIG. 3 a, reader 10 bincludes a keyboard 13 k for inputting data including instructional dataand a display 14 d for displaying text and/or graphical information toan operator. Keyboard 13 k may be connected to bus 48-1, ASIC 44 or toprocessor 42 as indicated in FIG. 2 b. Display 14 d may be connected toASIC 44, to processor 42 or to system bus 48-1 as is indicated in theparticular embodiment of FIG. 3 b.

An operator operating optical reader 10 b can reprogram reader 10 b in avariety of different ways. In one method for reprogramming reader 10 b,an operator actuates a control button of keyboard 13 k which has beenpre-configured to result in the reprogramming of reader 10 b. In anothermethod for reprogramming reader 10 b an operator actuates control of aprocessor system not integral with reader 10 b to transmit aninstruction to reprogram reader 10 b. According to another method forreprogramming reader 10 b, an operator moves reader 10 b so that a “menusymbol” is in the field of view of image sensor 32 and then activatestrigger 13 t of reader 10 b to capture an image representation of themenu symbol. A menu symbol is a specially designed bar code symbolwhich, when read by an appropriately configured optical reader resultsin a reader being programmed. The reprogramming of an optical readerwith use of a menu symbol is described in detail in commonly assignedU.S. Pat. No. 5,965,863 incorporated herein by reference. Because thesecond and third of the above methodologies do not require actuation ofa reader control button of keyboard 13 k but nevertheless result in areader being reprogrammed, it is seen that reader 10 may be keyboardlessbut nevertheless reprogrammable. It will be seen that the second orthird of the above methodologies can be adapted for selecting one of thereader operating modes described herein.

A typical software architecture for an application operating programtypically executed by an optical reader as shown in FIG. 3 b is shown inFIG. 4 a depicting a memory map of a program stored in program memory47-1. Application operating program 60 adapts a reader for a particularapplication. Three major applications or functions for an optical readerimaging device having image capture capability are: (1) comprehensivedecoding; (2) data transfer; and (3) signature capture. In acomprehensive decoding application, reader 10 may preliminarily analyzeand then decode a message corresponding to a bar code symbol or OCRdecodable text character. In a data transfer application, reader 10uploads character text files or image files to a processor systemlocated externally relative to reader housing 11. In a signature captureapplication, reader 10 may capture an image corresponding to a scenehaving a signature, parse out from the image data that image datacorresponding to a signature, and transmit the captured signature datato another processing system. It is seen that the third of suchapplications can be carried out by an optical reader imaging device thatis not an optical reader decoder equipped with decoding capability.Numerous other application operating programs are, of course possible,including a specialized 1D decoding application, a specialized 2D barcode decoding algorithm, a specialized OCR decoding application whichoperates to decode OCR decodable text characters, but not bar codesymbols. A user of a reader configured in accordance with the inventionaccesses a mode selector menu driver as exemplified by the embodiment ofshown in FIG. 1 a when a decoding function of the reader is actuated.

Referring now to specific aspects of the software architecture of anoperating program 60, program 60 includes an instruction section 62, anda parameter section 64. Further, instruction section 62 may includeselectable routine section 62 s. Instructions of instruction section 62control the overall flow of operations of reader 10. Some instructionsof instruction section 62 reference a parameter from a parameter tableof parameter section 64. An instruction of instruction section 62 maystate in pseudocode, for example, “set illumination to level determinedby [value in parameter row x].” When executing such an instruction ofinstruction section 62, control circuit 40 may read the value ofparameter row 64 x. An instruction of instruction section 62 may alsocause to be executed a selectable routine that is selected depending onthe status of a parameter value of parameter section 64. For example, ifthe application program is a bar code decoding algorithm then aninstruction of instruction section 62 may state in pseudocode, forexample, “launch Maxicode decoding if Maxicode parameter of parameterrow 64 y is set to “on”. When executing such an instruction, controlcircuit 40 polls the contents of row 64 y of parameter section 64 todetermine whether to execute the routine called for by the instruction.If the parameter value indicates that the selectable routine isactivated, control circuit 40, executes the appropriate instructions ofroutine instruction section 62 s to execute the instruction routine.

It is seen, therefore, that the above described software architecturefacilitates simplified reprogramming of reader 10. Reader 10 can bereprogrammed simply by changing a parameter of parameter section 64 ofprogram 60, without changing the subroutine instruction section 62 s orany other code of the instruction section 62 simply by changing aparameter of parameter section 64. The parameter of a parameter value ofsection 62 can be changed by appropriate user control entered viakeyboard 13 k, by reading a menu symbol configured to result in a changein parameter section 64, or by downloading a new parameter value ortable via a processor system other than system 40 as shown in FIGS. 3 aand 3 b. The reprogramming of reader 10 b can of course also beaccomplished by downloading an entire operating program includingsections 62 and 64 from a processor system other than system as shown inFIGS. 3 a and 3 b.

Another architecture typical of an optical reader which may beconfigured in accordance with the invention is shown in FIG. 3 c. Reader10 c comprises a control circuit 40 having a processor system 40 s 1,and an integrated host processor system 40 s 2 which includes hostprocessor 40 hp and an associated memory 45-2. “Host processor system”herein shall refer to any processor system which stores a readerapplication operating program for transmission into a processor systemcontrolling operation of a reader imaging system 33 or which exercisessupervisory control over a processor system controlling operation of areader imaging system 33, or which stores in it's associated memory morethan one application operating program that is immediately executable onreception of a command of a user. In a reader having two processors suchas processor 42 and processor 40 hp, processor 42 is typically dedicatedto processing image data to decode decodable indicia, whereas processor40 hp is devoted to instructing processor 42 to execute decodingoperations, receiving inputs from trigger 13 t and keyboard 13 k,coordinating display and other types of output by output devices 14 d,14 g, and 14 a and controlling transmissions of data between variousprocessor systems.

In architectures shown in FIG. 3 c having dedicated decoding processorsystem 40 s 1 and a powerful, supervisory host processor system 40 s 2,host processor system 40 s 2 commonly has stored thereon an operatingsystem, such as DOS WINDOWS or WINDOWS, or an operating system speciallytailored for portable devices such as, WINDOWS CE available fromMicrosoft, Inc. In the case that host processor system 40 s 2 includesan operating system such as DOS or WINDOWS CE, the instruction sectionand parameter section of the operating program controlling the operationof host processor system 40 s 2 normally are programmed in a high levelprogramming language and assembled by an assembler before being storedin memory 47-2 and therefore may not reside in consecutive addresslocations as suggested by program 60 shown in FIG. 4 a. Nevertheless,host processor system 40 s 2 having an operating system integratedthereon can readily assemble an operating program into such a form forloading into an external processor system that does not have anoperating system stored thereon.

Referring to further aspects of readers 10 a, 10 b, and 10 c at leastone I/O interface e.g. interface 37-1, 37-2, and 37-3 facilitates local“wired” digital communication such as RS-232, Ethernet, serial busincluding Universal Serial Bus (USB), or local wireless communicationtechnology including “Bluetooth” communication technology. At least oneI/O interface, e.g. interface 37-3, meanwhile, facilitates digitalcommunication with remote processor assembly 88-1 in one of availableremote communication technologies including dial-up, ISDN, DSL, cellularor other RF, and cable. Remote processor assembly 88-1 may be part of anetwork 88N of processor systems as suggested by assemblies 88-2, 88-3,and 88-4 links 88L and hub 88H e.g. a personal computer or main framecomputer connected to a network, or a computer that is in communicationwith reader 10 c only and is not part of a network. The network 88N towhich assembly 88-1 belongs may be part of the internet. Further,assembly 88-1 may be a server of the network and may incorporate webpages for viewing by the remaining processor assemblies of the network.In addition to being in communication with reader 10 c, assembly 88-1may be in communication with a plurality of additional readers 10′ and10″. Reader 10 c may be part of a local area network (LAN). Reader 10may communicate with system 88-1 via an I/O interface associated withsystem 88-1 or via an I/O interface 881 of network 88N such as a bridgeor router. Further, a processor system external to processor system 40such as processor system 70 s may be included in the communication linkbetween reader 10 and assembly 88-1. While the components of readers 10a, 10 b, and 10 c are represented in FIGS. 3 a-3 c as discreet elementsit is understood that integration technologies have made it possible toform numerous circuit components on a single integrated circuit chip.For example, with present fabrication technologies, it is common to formcomponents such as components 42, 40, 46-1, 47-1, 37-2, and 37-1 on asingle piece of silicone.

Furthermore, the number of processors of reader 10 is normally of nofundamental significance to the present invention. In fact if processor42 is made fast enough and powerful enough special purpose ASICprocessor 44 can be eliminated. Likewise referring to reader 10 c asingle fast and powerful processor can be provided to carry out all ofthe functions contemplated by processors 40 hp, 42, and 44 as isindicated by the architecture of reader 10 e of FIG. 3 e. Still further,it is understood that if reader 10 includes multiple processors theprocessors may communicate via parallel data transfers rather than viathe serial communication protocol indicated by serial buses 48-1 and48-2. In addition, there is no requirement of a one-to-onecorrespondence between processors and memory. Processors 42 and 40 hpshown in FIG. 3 c could share the same memory, e.g. memory 45-1. Asingle memory e.g. memory 45-1 may service multiple processors e.g.processor 42 and processor 40 hp.

Referring to the embodiment of FIG. 3 d, it is seen that it is notnecessary that the entirety of electrical components of an opticalreader 10 be incorporated in a portable device housing 11. Theelectrical components of reader 10 d are spread out over more than onecircuit board that are incorporated into separate device housings 11 and71. It is understood that circuitry could be spread out into additionalhousings. Control circuit 40 in the embodiment of FIG. 3 d isincorporated entirely in the housing 71 that is non-integral withportable device housing 11. Housing 71 is shown as being provided by apersonal computer housing, but could also be provided by another type ofhousing such as a cash register housing, a transaction terminal housingor a housing of another portable device such as housing 11. At least oneoperating program for controlling imaging assembly 33 and for processingimage signals generated from imaging assembly 33 is stored in EROM 47-1located within PC housing 71. For facilitating processing of signalsgenerated from imaging assembly 33 by a processor system that is notintegrated into portable housing 11 a high speed data communication linkshould be established between imaging assembly 33 and processor system40. In the embodiment of FIG. 3 d, I/O interfaces 37-4 and 37-5 andcommunication link 39 may be configured to operate according to the USBdata communication protocol. The configuration shown in FIG. 3 d reducesthe cost, weight, and size requirements of the portable components ofreader 10 d, which in reader 10-4 are the components housed withinportable housing 11. Because the configuration of FIG. 3 d results infewer components being incorporated in the portable section 11 of reader10 d that are susceptible to damage, the configuration enhances thedurability of the portable section of reader 10-4 delimited by housing11.

The control circuit 40 as shown in the embodiment of FIG. 3 d can be incommunication with more than one “shell” processorless reader comprisinga reader housing and a reader circuitry shown by the circuitry withindashed housing border 11 of FIG. 3 d. In the case that a control circuitas shown in FIG. 3 d services many “shell” readers or processor-equippedreaders input/output port 37-5 should be equipped with multiplexingfunctionality to service the required data communications betweenseveral readers or shell readers and a single processors system.

The reader communication system of FIG. 3 e has a physical layoutidentical to reader 10 d, but is optimized for a different operation.System 67 is a communication system in which reader processor system 40communicates with a nonintegrated local host processor system 70 sprovided by a personal computer 68 having a PC housing 71, a keyboard 68k, a mouse 68 m, and a display 68 d. Provided that link 67L is a highspeed communication link, nonintegrated local host processor system 70 scould be programmed to provide functioning identical to processor system40 s of reader 10 d. However, because reader 10 e comprises anintegrated processor system 40 such programming is normally unnecessary,although as described in copending application Ser. No. 09/385,597 it isuseful to configure processor system 40 communication with a hostprocessor system e.g. 70 s so that certain components of reader 10 suchas trigger 13 t can be controlled remotely by host processor system 70s, which in one embodiment is nonintegrated. Accordingly, in reader-hostcommunication systems as shown in FIG. 3 e nonintegrated host processorassembly 68 typically is programmed to provide functions separate fromthose of the reader processor systems described in connection with FIGS.3 a-3 d.

As described in U.S. Pat. No. 5,965,863, incorporated herein byreference, one function typically provided by nonintegrated local hostprocessor system 70 s is to create operating programs for downloadinginto reader 10. Processor system 70 s typically has an operating systemincorporated therein, such as WINDOWS, which enables an operator todevelop operating programs using a graphical user interface.Nonintegrated local processor system 70 s also can be configured toreceive messages an/or image data from more than one reader, possibly ina keyboard wedge configuration as described in U.S. Pat. No. 6,161,760,incorporated herein by reference. It is also convenient to employprocessor system 70 for data processing. For example a spreadsheetprogram can be incorporated in system 70 s which is useful for analyzingdata messages from reader 10 e. An image processing application can beloaded into system 70 s which is useful for editing, storing, or viewingelectronic images received from reader 10 e. It is also convenient toconfigure reader 10 e to coordinate communication of data to and from aremote processor assembly such as assembly 88-1. Accordingly processorassembly 68 typically includes I/O interface 74-2 which facilitatesremote communication with a remote processor assembly, e.g. assembly88-1 as shown in FIG. 3 c.

The various modes of operation of the device are now described ingreater detail. A user may actuate the “message only” mode using one ofa possible menu driver systems as previously explained. When trigger 13Tis actuated with reader 10 in the first mode, control circuit 40captures a frame of image data into a decoding buffer memory location,typically located within RAM 46, subjects the frame of image data withinthe buffer memory location to a decoding algorithm to generate adecoded-out message, then stores in a designated decoded-out messagememory location of memory 45 the decoded-out message determined fromapplication of the decoding algorithm.

The first mode is referred to as a “message only” mode despite therebeing a capture of a frame of image data into a buffer memory because inthe first mode there is no writing of image data into a dedicated imageframe storage memory location of memory 45 after the initial capturingof the image data into a buffer memory location. A designated imageframe storage memory location of a memory 45 of an imaging device 10 isa memory location that is specifically designated for later accesseither by imaging device 10 or by an external processor system such asthe processor system 70 s of a host PC 68 as shown in the example ofFIG. 3 e or by a processor system of a remote processor assembly 88-1.Imaging devices capable of image capture are typically equipped with animage upload function which is executed when the image capture device isin communication with a host system, e.g. a PC 68 as shown by theexample of FIG. 3 e, or a remote host system 88-1, as indicated by theexample of FIG. 3 c. When the image upload function is actuated, thehost processor system, e.g. system 70 s typically reads several framesof image data from several designated frame storage memory locations ofmemory 45. Control circuit 40 typically writes a frame of image data toone of these designated frame storage memory locations when operating inthe second, third, or fourth modes described herein. Unlike a decodingbuffer memory location, a designated frame storage memory location isnot routinely overwritten during the course of capturing image forsubjecting to decoding algorithms.

In should be noted that control circuit 40 can be of a type that doesnot capture each new frame of image data into a single buffer memorylocation during the course of capturing images for decoding purposes.Instead, control circuit 40 during the course of decoding decodableindicia session may capture each newly captured image into a separatememory location of memory 45 and may attach a designation flag (such asin an allocated open byte of the image file) in the case the frame ofimage data is to be designated for further processing after decoding iscomplete. Control circuits 40 that do not utilize a decode buffer memorylocation during decoding attach designation flags to captured imagescaptured during execution of the second, third, and fourth modes herein.That is, where a control circuit 40 that does not utilize a decodebuffer captures a frame of image data into memory 45 while operating inaccordance with the third mode, for example, control circuit 40 decodesimage data represented in the frame of image data and attaches adesignation flag to the captured frame of image data to indicate thatthe image data is to be subjected to further processing in addition tothe decoding processing (such as uploading to processor system 70 s, forexample). Control circuit 40 thereby develops a “link list” of imagefiles having designation flags attached thereto to designate that theframe of image data is to be subjected to further processing. The phrase“storing a frame of image data into a designated frame storage memorylocation” should be understood therefore to refer to both the situationwhere control circuit 40 transfers or copies an image frame from adecode buffer memory location of memory 45 and the situation where acontrol circuit 40 attaches a designation flag to a captured frame ofimage data captured into a memory location of memory 45 that is not adecode buffer memory location.

Various methods for decoding decodable indicia, including 1D symbols, 2Dsymbols, and text characters represented in captured image data areknown. As has been indicated herein, reader 10 according to theinvention attempts to decode decodable indicia represented in a capturedframe of image data when executing the first, third, and fourth modesdescribed herein. Specific features of algorithms for decoding decodableindicia represented in a captured frame of image data are described withreference to FIGS. 5, 6, 7, and 8.

As embodied herein and depicted in FIG. 5, a flow chart showing a methodfor attempting to decode decodable indicia is described. In step 500,control circuit 40 refers to parameter table 64 stored in EROM 48 asdescribed with reference to FIG. 4 a. Specifically, control circuit 40determines if the parameter table is programmed to perform 1D decoding.If the parameter table has enabled 1D processing, 1D autodiscriminationis performed. The parameter table specifies the values of the parametersthat define the operational mode of the reader. Examples of theseparameters include the size and frame rate of image sensor 32, codesthat are enabled during bar code decoding, I/O communications protocols,OCR options, and others. If 1D decoding is successful, the decoded datais stored and possibly displayed, in accordance with the parameter tablesettings. If 1D codes are disabled or if 1D decoding is unsuccessful,control circuit moves on to step 508. In this step, control circuit 40determines if any 2D codes are enabled. If the parameter table has allof the 2D codes disabled, control circuit 40 exits the bar code decodingroutine. If 2D codes are enabled, 2D autodiscrimination is performed instep 510. If decoding is successful, the decoded data is either storedor output, depending on the parameters stored in the parameter table. Ifdecoding is unsuccessful, control circuit 40 exits the routine.

As embodied herein and depicted in FIG. 6, a flow chart showing a methodfor performing the 1D autodiscrimination of step 502 in FIG. 5 isdisclosed. In step 600 control circuit 40 calculates the activities ofselected image data elements. The activity is defined as a measure ofthe rate of change of the image data over a small two-dimensionalportion of the region surrounding the selected data element. In oneembodiment, the activity is calculated along any two arbitrarilyselected directions which are orthogonal one to the other. Two mutuallyperpendicular directions are used because the orientation of the symbolis unknown. In step 602, control circuit 40 looks for “high activity”regions. These high activity regions are referred to as candidate symbolregions (CSRs). A high activity region indicates a transition from ablack region to a white region, or vice-versa. If there is more than oneCSR, it may indicate the presence of more than one bar code symbol. Instep 604, control circuit 40 selects the largest CSR. In step 606,control circuit 40 calculates the centroid of the largest CSR.Subsequently, control circuit 40 finds the direction of the highestactivity in the largest CSR. In a 1D bar code, this will be thedirection perpendicular to the direction of the bars. In steps 610 and612, control circuit 40 defines the initial scan line (SC=0), as beingthe scan line bisecting the centroid of the bar code. Control circuit 40calculates the brightness values of sampling points along the initialscan line. These brightness values are converted to digital data in step616. In decoding step 618, control circuit 40 applies one 1D decodingprogram after another. If decoding is unsuccessful, control circuit 40checks if the entire CSR has been scanned. If not, it establishes a newscan line, and repeats the decoding process. If in step 622, the entireCSR has been scanned, and there are no CSRs remaining to be decoded,control circuit 40 exits the routine. If in step 620, 1D decoding issuccessful, control circuit 40 determines if the symbol is a 1D stackedsymbol. If it is a 1D stacked symbol, control circuit 40 scans anddecodes the remaining CSRs in the stacked symbol. If it is not a stackedsymbol, the decoded 1D data is stored or output to display 60 in step630. In step 638, control circuit 40 determines if there are anyunexamined regions. If there are unexamined regions, the decodingprocess is repeated. Otherwise, control circuit 40 exits the routine.

As embodied herein and depicted in FIG. 7, a flow chart showing a methodfor 2D autodiscrimination is disclosed. In step 700, control circuit 40converts the image data into a two-state binarized format. In step 702,control circuit 40 locates all 2D finder patterns and identifies them bytype. Pattern types include bullseye type patterns, waistband typepatterns peripheral patterns, and others. If the number of finderpatterns equals zero, control circuit 40 exits the routine and returnsto the routine depicted in FIG. 5. If there are finder patterns, controlcircuit 40 locates the finder pattern closest to the center of the fieldof view in one embodiment of the invention. The closest-to-the-centeroption has an advantage in that a centrally located image is likely tobe a symbol. In step 708, control circuit 40 attempts to decode thesymbol in accordance with the finder type. For example, the Aztec 2Dmatrix symbol employs a bullseye finder pattern. The DataMatrixsymbology employs a peripheral finder pattern. If the decoding issuccessful, the decoded data is either stored or displayed. In step 714,control circuit 40 determines if there are any other unused finderpatterns. If so, the symbols corresponding to those unused patterns aredecoded, and the previously described steps are repeated. Otherwise,control circuit 40 exits the routine.

As embodied herein and depicted in FIG. 8, a flow chart showing a methodfor reading text is disclosed. This routine can be accessed in a numberof ways. For example, the routine may be actuated automatically ifsymbology decoding fails. A user may also select an OCR option using anappropriate menu driver. Reader 10 can be configured so that such aselection disables symbology decoding. In step 800, an image map frameof image data is captured. In step 802, the image map is sampled. In oneembodiment, this is performed by analyzing every Nth scan line of theimage. The value of integer N is dependent on the resolution of thescanned image. In one embodiment the image is sampled every 1/40th of aninch. This provides sufficient resolution to locate and classify thevarious regions on the page. By sampling every 1/40th of an inch insteadof every scan line, the processing and memory requirements of reader 10are substantially reduced. In step 804, control circuit 40 identifiespage features. Control circuit 40 may analyze the page and divides itinto blank and non-blank portions. The non-blank portions are analyzedto distinguish text regions from non-text regions. After determining thelayout of the page, control circuit 40 uses black-to-white transitionsto determine degrees of skew. In step 808, horizontal white spaces areidentified to separate lines of text. In step 810, vertical white spacesare identified within each line of text to thereby separate individualwords and characters from each other. In step 814, a characterrecognition algorithm is used in an attempt to recognize each individualcharacter. Finally, in step 816, control circuit 40 formats therecovered text before storing the text in memory 45.

Referring again to modes of operation of a reader 10 according to theinvention, the second, “image only” only mode will now be described. Auser selects the second mode as described previously by making aselection of an indicator corresponding to the second mode using a modeselector menu driver. When the second, “image only” mode is selected andtrigger 13 t is actuated, control circuit 40 captures or writes a frameof image data corresponding to the scene presently in the field of viewof reader 10 into a designated image frame storage location of memory 45without attempting to decode decodable indicia represented in the frameof image data. In the second mode, control circuit 40 may capture aframe of image data into a decoding buffer memory location of memory 45and then write the frame of image data into a designated frame storagelocation of memory 45 without attempting to decode indecodable indiciarepresented therein or else control circuit 40 may bypass the decodingbuffer memory location entirely and capture the frame of image datadirectly into a non-decoding buffer frame storage location of memory 45as has been described herein.

The second mode is highly useful in a variety of commonly encountereddecoding applications. For example, if a scene includes indicia that isdecodable by way of available decoding technologies but not by reader 10as presently configured, it is useful to select the second “image only”mode so that (1) the frame of image data corresponding to the scene canbe shipped to an external processor system equipped to decode thedecodable indicia, or so that (2) the reader can be reprogrammed so thatit has the capacity to decode the particular type of decodable indiciain the captured image representation. Of course, the second mode ishighly useful since it allows user to easily capture images for anypurpose which may be unrelated to decoding during the course ofoperating reader 10 in accordance with a decode function.

Frame image capture functionality is available in imaging devices thatare not normally equipped with decoding functionality. For example,digital cameras as depicted by the example of FIG. 2D are typicallyemployed to capture images without attempting decode decodable imagesrepresented therein. The frame image capturing function of the presentinvention is distinguished from the frame image capture function of theprior art digital camera in that the frame image capture mode of theinvention is made available as a menu option out of a series of menuoptions wherein the alternative menu options are characterized byattempts to decode decodable indicia within captured image data bycontrol circuit 40.

Furthermore in the second mode, control circuit 40 may be made toexecute steps in furtherance of decoding decodable indicia afterexecuting the step of storing a frame of image data into a designatedframe storage memory location of memory 45. For example, after storing aframe of image data in memory 45 in the second mode, control circuit 40of reader 10 may transmit an instruction to an external processor systeme.g. processor system 70 s or the processor system of assembly 88-1 sothat the external processor system transmits to reader 10 a newoperating program which results in reader having the capacity to decodethe image data represented in the frame of image data just written tothe designated frame storage memory location of memory. Control circuit40, as reprogrammed, may be configured to automatically decode, or maylater be controlled to decode decodable indicia represented in the frameof image data stored in the designated frame storage memory location ofmemory 45. In addition, as part of the second mode, control circuit 40after writing a frame of image data into a designated frame storagememory location of memory 45 may be made to transmit the stored frame ofimage data, or a copy thereof, to an external processor system such ashost processor system 70 s or a processor system of remote processorassembly 88-1 together with complementary instructions instructing theexternal processor system, e.g. system 70 s or a system of assembly 88-1to decode any decodable indicia in the frame of image data and totransmit a decoded-output message yielded by such decoding back toreader 10. When receiving the frame of image data and complementaryinstructions, the external processor system, e.g. system 70 s or systemof assembly 88-1 may then automatically decode the decodable indiciarepresented in the frame of image data and transmit the decoded-outputmessage back to reader 10.

Referring now to the third, “image and message” mode, the third mode maybe actuated by selecting a menu option out of a series of menu optionsas in the first and second modes. When operating in the third mode,actuation of trigger 13T results in control circuit 40 capturing a frameof image data corresponding to a scene presently in the field of view ofreader into a buffer memory location of memory 45, attempting to decodedecodable indicia represented in the frame, and storing both frame ofimage data and its associated decoded-out into a designated framestorage location of memory 45 or into a set of designated image andmessage storage locations of memory 45.

The fourth mode of operation, the “two-step message and image”, issimilar to the third mode except that the fourth mode involves two imagecapturing steps instead of one. The fourth mode may be actuated, as inthe first second and third modes by selecting an appropriate menu optionout of a series of menu options as explained with reference to FIG. 1 a.When the fourth mode is active, actuation of trigger 13T a first timeresults in control circuit 40 capturing a frame of image data into abuffer memory location of memory 45, subjecting the frame of image datato decoding, and writing the decoded-output message resulting fromapplication of the decoding algorithm to a designated message storagelocation of memory 40 or to a temporary memory location, as will beexplained later herein. Actuation of trigger 13T a second time whenreader 10 operates in the fourth mode results in a frame of image datacorresponding to the scene presently in the field of view of reader 10being captured into or written into a designated frame image storagelocation of memory 10. Of course, the ordering of the decode and imagestorage image capturing steps in the fourth mode may be reversed.

It will be seen that the frame of image data that is associated withdecoded-output message data in the fourth mode will not necessarilycomprise an image representation of the decodable indicia from which thedecoded-output message is generated. In the fourth mode, the frame ofimage data associated with a decoded-output message can be any image auser wishes to associate with a decoded-output message. For example, auser may actuate the fourth mode a first time to associate a large fieldimage representation of a front side of package which may or may notcomprise a representation of the indicia corresponding to thedecoded-output message (of resolution that is insufficient fordecoding), and actuate the fourth mode a second time to associate alarge field view of a back side of a package that does not comprise arepresentation of a decodable indicia. The user may then actuate thefourth mode a third time to associate a decoded-output message with yetanother image representation such as an image representation of thetrailer box on which the package was loaded.

Furthermore, it will be seen that a reader according to the inventioncan have other modes of operations wherein more than one frame of imagedata is associated with a decoded-out message, wherein more than onedecoded-out message is associated with a frame of image data written todesignated frame storage location of memory 45, or wherein multipledecoded messages are associated with multiple frames of image data. Theother modes of operation may require more than the pair of image capturesteps required in the fourth mode of operation. Of course, usefulembodiments of the invention can also have less than all of the fourmodes of operation explained in detail herein.

In both the third and fourth modes, decoded-out message data isassociated with image data. Message data can be associated with imagedata in a number of useful ways in the third and fourth modes.

For example, according to a first method for associating image andmessage data as shown by the example of FIG. 9 a, message data can beconverted into image data, and the image representation of the messagedata can be stitched into a part of the frame of image data. FIG. 9 ashows a printed-out frame of image data. Image data frame 910 included astitched in window region 912 including an image representation of thedecoded-out message. If operating in the third mode and executing themessage and image association illustrated by FIG. 9 a, control circuit40 generates a decoded-out message by subjecting frame 910 to decoding,converting the decoded-out message into an image representation of themessage data, and stitching in an image representation of thedecoded-out message data into frame. If operating in the fourth mode andexecuting the message-image association method as illustrated withreference to FIG. 9 a, control circuit 40 generates a decoded-outmessage by subjecting a frame other than frame 910 to decoding,converting the decoded-out message into an image representation of themessage data, and stitching in an image representation of thedecoded-out message data into frame 910.

According to another method for associating decoded-out message data andimage data, control circuit 40 stores decoded-out message data into adesignated message data storage location of memory 45 separate from adesignated image data storage location of memory 45, without convertingthe message data into an image representation of message data.

Another highly useful method for associating decoding-out message datawith image data is described with reference to FIG. 9 b. According tothe method described with reference to FIG. 9 b decoded-out message datais stored in an image file without converting the decoded-out messagedata into an image representation of the message data. FIG. 9 b shows atypical software architecture for an image file. Image file 920 in oneof an available formats (such as .BMP, or .TIFF or .PDF, etc.) may havea header and/or tail bytes that describes characteristics of the imagefile. For example, a first byte 922 of file 920 may comprise datadescribing the image size in bytes. Second byte 924 may comprise datadescribing the number of bytes of file 920 in the X dimension. Thirdbyte 926 may comprise data describing the number of bytes of file 920 inthe Y dimension. Fourth byte 928 may comprise data describingcompression information. Fifth byte 930 may comprise data describingcolor information related to file 920. Sixth byte 932 may comprisepointer data pointing to a byte location of image data of file 920. Thefirst through tenth bytes 922, 924, 926, 928, 930, 932, 934, 936, 938,and 940 may be termed a header 942 of file 920. File 920 may alsoinclude a tail 950 having bytes 952 and 960 comprising filecharacterizing data. Pixel or image data bytes, e.g. bytes 970 typicallyfollow the bytes of header 942. Importantly, either or both of header942 and tail 950 include at least one allocated open byte, e.g. byte934, 936, 938, and 958 which are available for storage of user-defineddata.

According to the method of the message and image association describedwith reference to FIG. 9 b control circuit 40 stores decoded-out messagedata within the designated image storage memory location of memory 45 bywriting the decoded-out message data to at least one allocated openmemory space, e.g. open byte 934, of a header 942 tail 950 or of animage file, e.g. file 920. It is seen that the methods of message andimage association described with reference to FIGS. 9 a and 9 b allowtransmissions of combined message and image data between processorsystems, e.g. system 40 and system 70 s using a standard image file datatransmission protocol.

The message-image association method described with reference to FIG. 9a is highly useful since it allows message data to readily be viewed inconnection with image data that has been associated with the messagedata. However, when the method of message and image associationdescribed with reference to FIG. 9 a is not used in combination withanother message-image association method, the image data representedwithin window 912 must be subjected to decoding to retrieve the messagedata from the image representation of the message data. In order toavoid the requirement of redecoding the message data from an imagerepresentation of the message data, it is highly useful to combine themethod of message and image association described with reference to FIG.9 a with the method of message and image association described withreference to FIG. 9 b. That is, according to one embodiment, controlcircuit 40 when operating in the third or fourth modes, both creates animage representation of the decoded-out message and stitched the imagerepresentation into the image frame as described in connection with FIG.9 a, and writes to an allocated open byte of the image file thedecoded-out data message as explained with reference to FIG. 9 b.

The third and fourth modes of operation as described herein are highlyuseful in the case supplementary decoding may be desired. With thenumber of decodable types of indicia ever expanding, the situation is acommon one where a scene includes multiple types of decodable indiciabut the reader capturing an image representation of the scene isconfigured to read only some of them. For example, reader 10 may bepresently equipped to decode 1D symbols only and a scene may include 1Dsymbols, 2D symbols and decodable text strings. The third or fourthmodes of operation as explained herein can be actuated in the case thata scene includes at least one decodable indicia that can be decoded byreader 10 as presently configured and at least one decodable indiciathat cannot be decoded by reader 10 as presently configured. The thirdor fourth modes can be actuated so that reader 10 decodes the presentlydecodable indicia of the scene and associates an image representationwith the decoded-out message. As explained in the description of thesecond mode herein, control circuit 40, either automatically or upon auser request, may then transmit the image representation to an externalprocessor assembly, e.g. assembly 68 or 88-1 for decoding, which maytransmit the decoded message back to reader 10, or may transmit arequest to an external processor assembly e.g. assembly 68 or 88-1 toreprogram reader 10 so that reader 10 is reconfigured for reading thepreviously unreadable indicia.

The third and fourth modes of operation as described herein are alsohighly useful for fraud detection. It is seen from FIG. 9 a thatactuation of the third or fourth modes allows message data such as thatshown in window 912 to be viewed simultaneously with an imagerepresentation 910 of a scene, often with use of processor assemblyexternal from reader 10 such as processor assembly 68 or assembly 88-1.

In one method of fraud involving decodable indicia known astransposition fraud decodable symbols are lifted from or copied from afirst item and placed on a second item.

The first item may be, for example, a retail product of lower value andthe second item may be a retail product of higher value. The first itemmay also be, for example, an identification card owned by a person over21 and the second item may be an identification card owned by a personunder 21. Because it is common to allocate narrow classes of bar codedecoded-out messages with narrow categories of items, the third andfourth modes, allow for a user of reader 10 or of a processor system incommunication with reader 10 in many cases to quickly determine whetherthere has been a transposition fraud by simultaneous observation of ascene image representation and a decoded-out message.

The third and fourth modes also allow convenient observation of indiciabearing or transaction associated objects for such purposes as productor package tampering or damage. It is seen that the second, “image only”mode of operation described herein is also useful for purposes of fraud,tamper, or damage detected explained with reference to the third andfourth modes.

Particularly when the message-image associated method described withreference to FIG. 9 b is executed, the third and fourth modes ofoperation explained herein are also highly useful for image indexingpurposes. It is seen that writing decoded-out message data to at leastallocated open byte location of several image files (e.g. open byte 934of file type 920) creates a readily searchable database of image files,wherein each file is indexed by the decoded-out message associated withthe captured image frame, as determined by the decodable indiciayielding the decoded-out message. When such a database is created, anyone image file in the database can be readily accessed using a processorsystem that stores or is in communication with the image file databasesuch as processor system 40, 70, or the processor system of assembly88-1. A particular one image file of the image file database can beaccessed by commanding the processor system storing or in communicationwith the database to search for a particular decoded-out message in theat least one allocated open byte location (e.g., byte 934 of file type920) of the various stored image data frame image files.

The utility of such an indexing function and further aspects of theimage indexing function are illustrated by way of example. Referring toFIG. 10 consider the example of an indicia bearing package 1010 bearinga decodable indicia 1012 that is transported from location A to locationB located a long distance (e.g., several miles) from location A. Atlocation A, mode four may be actuated by a first user using a firstreader 10 to associate a decoded message corresponding to indicia 1012with an image representation of package 1010. The first user may thencontrol reader 10 to transmit the indexed image file representation ofpackage 1010 as indexed by the decoded-out message corresponding toindicia 1012 to central database stored in the processor system ofremote processor assembly 88-1. Some time later, a second user at thereceipt location B having a second reader 10′ as illustrated in thecommunication system of FIG. 3 c, may receive package 1010 and noticethat package 1010 is damaged. The user at location B may then readindicia 1012 using second reader 10′ and also in communication withassembly 88-1 as depicted in FIG. 3 c and upload the decoded-out messagecorresponding to indicia 1012 either to remote processor assembly 88-1or to remote processor assembly 88-1 through an external local processorsystem such as system 70 s. Using the decoded-out message correspondingto indicia 1012 as an image file index identifier, the user at receiptlocation B may search the image file database of remote assembly 88-1 toretrieve the image file associated with package 1010 taken at location Ain order to determine whether package 1010 was damaged during transportfrom location A to location B.

While the present invention has been explained with reference to thestructure disclosed herein, it is not confined to the details set forthand this invention is intended to cover any modifications and changes asmay come within the scope of the following claims.

1. A hand held bar code reading apparatus comprising: an imaging assembly including a two dimensional image sensor; a control circuit having an associated memory in communication with said imaging assembly and being configured to operate in at least a first mode and a second mode; said bar code reading apparatus being operative so that when in said first mode said bar code reading apparatus in response to an actuator of said bar code reading apparatus being actuated writes a frame of image data into a memory location of said bar code reading apparatus; and said bar code reading apparatus further being operative so that when in said second mode, said bar code reading apparatus in response to a single actuator of said apparatus being actuated captures a frame of image data corresponding to a field of view of said bar code reading apparatus, decodes a representation of a bar code of said frame to produce a decoded-out message, and creates a formatted file of such format that when said formatted file is subjected to viewing, both an image representation corresponding to the field of view and the decoded-out message are viewed, said formatted file further being of such format that when said formatted file is transmitted to an external device, both image data corresponding to the field of view and the decoded-out message are transmitted to said external device.
 2. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus is operative to convert the decoded-out message into an image representation of characters of the decoded-out message.
 3. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus is operative so that said formatted file includes both image data corresponding to the field of view of the bar code reading apparatus and image data representing the decoded-out message.
 4. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus is operative so that the formatted file, when subjected to viewing, results in a frame of image data corresponding to the field of view being presented with image data representing the decoded-out message within the frame of image data at a lower portion of the frame.
 5. The hand held bar code reading apparatus of claim 1, wherein the decoded-out message includes characters.
 6. The hand held bar code reading apparatus of claim 1, wherein the first mode is an “image only” mode.
 7. The hand held bar code reading apparatus of claim 1, wherein the hand held bar code reading apparatus in the first mode writes the frame of image data into the memory location without attempting to decode the frame of image data.
 8. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus is operative so that the formatted file includes an image data location and an open byte location, wherein the bar code reading apparatus is operative to (a) convert message data of the decoded-out message into image data corresponding to the decoded-out message, (b) write the image data to the image data location, and (c) write data of the decoded-out message to the open byte location.
 9. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus includes a display.
 10. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus includes a flash illuminator.
 11. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus is operative so that an operator can select between the first mode and the second mode with use of displayed menu options.
 12. The hand held bar code reading apparatus of claim 1, wherein said hand held bar code reading apparatus is operative so the operator can select between the first mode and second mode with use of menu symbols.
 13. The hand held bar code reading apparatus of claim 1, said hand held bar code reading apparatus being operative so that when the decoded-out message is transmitted to an external device, the decoded-out message is transmitted in the form of image data representing characters of the decoded-out message.
 14. The hand held bar code reading apparatus of claim 1, said hand held bar code reading apparatus being operative so that when the decoded-out message is transmitted to an external device, the decoded-out message is transmitted in the form of image data representing characters of the decoded-out message, as well as in the form of data written into an open byte location of the formatted file. 